﻿namespace Leetcode.N0442;
public class Solution
{
    public IList<int> FindDuplicates(int[] nums)
    {
        var ans = new HashSet<int>();
        const int Max = 1000000;
        for (int i = 0; i < nums.Length; i++)
        {
            var val = nums[i] > Max ? nums[i] - Max : nums[i];

            if (nums[val - 1] > Max)
            {
                ans.Add(val);
            }
            else
            {
                nums[val - 1] += Max;
            }
        }
        return ans.ToList();
    }
}
